/* 
* 防抖 (防止抖动) 定时器  节流
*   防抖 一般 输入框中 防止重复输入 重复发送请求
*   节流 一般用在页面下拉和上拉
*/
import { request } from '../../request/index.js'
Page({
  data: {
    // 查询到的 数据
    goods: [],
    // 取消按钮是否显示
    isFocus: false,
    inpValue: ""
  },
  TimeID: -1,
  // 输入框 值改变 触发事件
  handleInput(e) {
    // 获取输入框的值
    const { value } = e.detail;
    // 检测合法性
    if (!value.trim()) {
      this.setData({
        goods: [],
        isFocus: false
      })
      // 值不合规则
      return;
    }
    // 显示 取消 按钮
    this.setData({
      isFocus: true
    })
    clearTimeout(this.TimeID)
    this.TimeID = setTimeout(() => {
      this.qsearch(value.trim())
    }, 500);
  },
  // 发送请求获取搜索建议
  async qsearch(query) {
    const { data: { message: resultDate } } = await request({ url: "/goods/qsearch", data: { query } })
    this.setData({
      goods: resultDate
    })
  },
  // 点击取消按钮 清除
  handleCancel() {
    this.setData({
      goods: [],
      isFocus: false,
      inpValue: ""
    })
    clearTimeout(this.TimeID)
  }
})